# Chapter 1. Introduction to Linux

#### Contents:

About This Book
A Brief History of Linux
Who's Using Linux?
System Features
Software Features
About Linux's Copyright
Open Source and the Philosophy of Linux
Differences Between Linux and Other Operating Systems
Hardware Requirements
Sources of Linux Information
Getting Help

This is a book about Linux, a free Unix clone for personal computer systems that supports full multitasking, the X Window System, TCP/IP networking, and much more. Hang tight and read on: in the pages that follow, we describe the system in meticulous detail.

Linux has generated more excitement in the computer field than any other development of the past several years. Its surprisingly fast spread and the loyalty it inspires recall the excitement of do-it-yourself computing that used to characterize earlier advances in computer technology. Ironically, it succeeds by rejuvenating one of the oldest operating systems still in widespread use, Unix. Linux is both a new technology and an old one.

In narrow technical terms, Linux is just the operating system kernel, offering the basic services of process scheduling, virtual memory, file management, and device I/O. In other words, Linux itself is the lowest-level part of the operating system.

However, most people use the term "Linux" to refer to the complete system--the kernel along with the many applications that it runs: a complete development and work environment including compilers, editors, graphical interfaces, text processors, games, and more.

This book will be your guide to Linux's shifting and many-faceted world. Linux has developed into an operating system for businesses, education, and personal productivity, and this book will help you get the most out of it.

Linux can turn any personal computer into a workstation. It will give you the full power of Unix at your fingertips. Businesses are installing Linux on entire networks of machines, using the operating system to manage financial and hospital records, distributed-user computing environments, telecommunications, and more. Universities worldwide are using Linux for teaching courses on operating-systems programming and design. And, of course, computing enthusiasts everywhere are using Linux at home, for programming, document production, and all-around hacking.

Apart from workstation and personal use (many people find it convenient to run Linux on their laptop computers), Linux is also being used to drive big servers. Increasingly, people are discovering that Linux is powerful, stable, and flexible enough to run the largest disk arrays and multiprocessor systems--with applications ranging from World Wide Web servers to corporate databases. Scientists are wiring together arrays of Linux machines into enormous "clusters" to solve the most computationally intensive problems in physics and engineering. With the latest release of the Samba software suite, Linux can even act as a Windows file and print server--with better performance than Windows NT!

What makes Linux so different is that it's a free implementation of Unix. It was and still is developed by a group of volunteers, primarily on the Internet, who exchange code, report bugs, and fix problems in an open environment. Anyone is welcome to join in the Linux development effort: all it takes is interest in hacking a free Unix clone and some kind of programming know-how. This book is your tour guide.

In this book, we assume you're comfortable with a personal computer (running any operating system, such as Windows 95, or some other version of Unix). We also assume that you're willing to do some experimentation to get everything working correctly--after all, this is half of the fun of getting into Linux. Linux has evolved into a system that is amazingly easy to install and configure, but because it is so powerful, some details are more complex than you'll find in the Windows world. With this book as your guide, we hope you'll find that setting up and running your own Linux system is quite easy and a great deal of fun.

## 1.1. About This Book

This book is an overview and entry-level guide to the Linux system. We attempt to present enough general and interesting information on a number of topics to satisfy Unix novices and wizards alike. This book should provide sufficient material for almost anyone to install and use Linux and get the most out of it. Instead of covering many of the volatile technical details--those things that tend to change with rapid development--we give you enough background to find out more on your own.

This book is geared for those people who really want to exploit the power that Linux provides. Rather than gloss over all of the tricky details, we give you enough background to truly understand how the various parts of the system work, so you can customize, configure, and troubleshoot the system on your own.

Linux is not difficult to install and use. However, as with any implementation of Unix, there is often some black magic involved to get everything working correctly. We hope this book will get you on the Linux tour bus and show you how cool this operating system can be.

In this book, we cover the following topics:

- What is Linux? The design and philosophy of this unique operating system, and what it can do for you.

- All the details needed to run Linux, including suggestions on what kind of hardware configuration is recommended for a complete system.

- How to obtain and install Linux. We cover the Red Hat, SuSE, and Debian distributions in more detail than others, but the background here should be adequate to cover any release of the system.

- For new users, an introduction to the Unix system, including an overview of the most important commands and concepts.

- The care and feeding of the Linux system, including system administration and maintenance, upgrading the system, and how to fix things when they don't work.

- Getting the most out of your Linux system, with "power tools" such as TeX, Emacs, KDE, and more.

- The Linux programming environment. The tools of the trade for programming and developing software on the Linux system. We introduce compilation and debugging of C and C++ programs, Java, Perl, shell scripts, and Tcl/Tk.

- Using Linux for telecommunications and networking, including the basics of TCP/IP configuration, PPP for Internet connectivity over a modem, ISDN configuration, email, news, and Web access--we even show how to configure your Linux system as a web server.

There are a million things we'd love to show you how to do with Linux. Unfortunately, in order to cover them all, this book would be the size of the unabridged Oxford English Dictionary and would be impossible for anyone (let alone the poor authors) to maintain. Instead we've tried to include the most salient and interesting aspects of the system and show you how to find out more.

While much of the discussion in this book is not overly technical, it helps to have previous experience with another Unix system. For those who don't have Unix experience, we have included a short tutorial in Chapter 4, "Basic Unix Commands and Concepts", for new users. Chapter 5, "Essential System Management", is a complete chapter on systems administration, that should help even seasoned Unix users run a Linux system.

If you are new to Unix, you'll want to pick up a more complete guide to Unix basics. We don't dwell for long on the fundamentals, instead preferring to skip to the fun parts of the system. At any rate, while this book should be enough to get you running, more information on using Unix and its many tools will be essential for most readers. See Appendix A, "Sources of Linux Information", for a list of sources of information.

Copyright © 2001 O'Reilly & Associates. All rights reserved.